import Vue from 'vue';
import App from './App.vue';
import router from './router';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css'; // 默认主题
import './assets/css/icon.css';
import 'babel-polyfill';
import axios from 'axios';
import * as dd from 'dingtalk-jsapi';
import { auth_login ,auth_getJsConfig} from '../src/api/index';
import {getUrl} from '@/utils/index'
import moment from "moment"
Vue.prototype.$moment = moment
// import { dingTalkPc } from 'dingtalk-auth';
// import requestAuthCode from '../src/api/ddlogin';

Vue.prototype.$http = axios;
Vue.config.productionTip = false;
Vue.use(ElementUI, {
    size: 'small'
});
const corpId = getUrl('corpId');
const agentId = getUrl('agentId')
let datas = {corpId:corpId,agentId:agentId}
auth_getJsConfig(datas).then(res=>{
    console.log('res: ', res.data.data.agentId);
    if(res.status == 200){
        var jsapilist = [
            'biz.contact.complexPicker' //选择人员
        ] //需要使用的jsapi列表
        //1、鉴权
        dd.config({
            agentId: res.data.data.agentId,
            corpId: res.data.data.corpId, //必填，企业ID
            timeStamp: res.data.data.timeStamp, // 必填，生成签名的时间戳
            nonceStr: res.data.data.nonceStr, // 必填，生成签名的随机串
            signature: res.data.data.signature, // 必填，签名
            jsApiList: jsapilist // 必填，需要使用的jsapi列表，注意：不要带dd。
        });

        dd.error(function(err) { //验证失败
            console.log("进入到error中");
            console.log('dd error: ' + JSON.stringify(err));
        })

    }
    dd.ready(function() {
        dd.runtime.permission.requestAuthCode({
            corpId: corpId,
            onSuccess: function(result) {
                const data = { code: result.code ,corpId:corpId,agentId:agentId};
                auth_login(data)
                    .then(res => {
                        if (res.status == 200) {
                            sessionStorage.setItem('userId',res.data.data.userid)
                            axios.interceptors.request.use(
                                function(config) {
                                    config.headers.common['Authorization'] =res.data.data.token;
                                    return config;
                                },
                                function(err) {
                                    return Promise.reject(err);
                                }
                            );

                                new Vue({
                                    router,
                                    render: h => h(App)
                                }).$mount('#app');
                        } else {
                            alert('登陆失败，请联系管理员');
                        }
                    })
                    .catch(err => {
                        console.log(err);
                    });
            },
            onFail: function(err) {
                alert(err);
            }
        });
    });


})


